package inner;

/**
 * 成员内部类:
 *  1.外部类调用内部类需要 创建内部类对象.调用
 *  2.内部类可以随意调用外部类成员变量及函数;
 *  3.内外部类变量重名是采用就近原则;
 */
public class Body { // 外部类

    public void methodBody() {  // 外部类的方法
        System.out.println("外部类的方法");
        new Heart().beat();  //创建内部类对象调用方法
    }

    int age=10;  // 外部类的成员变量

    public class Heart { // 成员内部类

        int age = 20; // 内部类的成员变量

        public void beat() {  // 内部类的方法
            int age = 30; // 内部类方法的局部变量
            System.out.println("心脏跳动：蹦蹦蹦！");

            System.out.println(age); // 局部变量，就近原则
            System.out.println(this.age); // 内部类的成员变量
            System.out.println(Heart.this.age); // 外部类的成员变量
        }
    }


}
